package scg.utils.policies.loadbalancer;

import java.util.Collection;

import org.gridgain.grid.GridFactory;
import org.gridgain.grid.GridNode;


/**Esta clase se utiliza para obtener el proximo nodo sobre el cual se mapeará
 * una tarea terminal*/
public abstract class BalancerPolicy {
	
	/**@return todos los nodos participantes del grid*/
	protected Collection<GridNode> getAllGridNodes(){
		return GridFactory.getGrid().getAllNodes();
	}
	
	/**@return el nodo local*/
	protected GridNode getLocalNode(){
		return GridFactory.getGrid().getLocalNode();
	}
	
	/**@return todos los nodos remotos participantes del grid, es decir,
	 * sin incluir el nodo local*/
	protected Collection<GridNode> getRemoteNodes(){
		return GridFactory.getGrid().getRemoteNodes();
	}
	
	/**@return el proximo nodo al que se le asignará una tarea terminal*/
	public abstract GridNode getBalancedNode();

}
